TOP
LibreOffice Calc'da Google Çeviri
Tanım
LibreOffice Calc programının standart işlevselliği, metni diğer dillere çevirme işlevlerini içermez. Ancak herhangi bir kullanıcı böyle bir işlevi bağımsız olarak oluşturabilir.
Bu makalede, herhangi bir çalışma sayfasındaki bir hücredeki metni doğrudan çevirmenize olanak tanıyan özel GoogleTranslate_YouLibreCalc() işlevine bakacağız.
İşlev, metni çevirmek için siteyi kullanır "Google Çeviri" ve herhangi bir formülde hem bağımsız olarak hem de diğer standart işlevlerle birlikte kullanılabilir.
StarBASIC işlevin kodu Google Translate
Eklemek function Google Translate , menüyü aç Tools - Macros - Edit Macros... , seçme Module1 ve aşağıdaki metni modüle kopyalayın:
- Option VBASupport 1
-
- Function GoogleTranslate_YouLibreCalc(TextToTranslate As String, SrcLang As String, TrgLang As String)
-
- Dim FCalc As Object
- Dim WebsiteURL As String
- Dim XMLHTTP As Object
- Dim oHTML As Object
- Dim HTMLDoc As HTMLDocument
- Dim ObjClass As Object
-
- FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
- TextToTranslate = FCalc.callFunction("ENCODEURL", Array(TextToTranslate))
-
- SrcLang = LCase(SrcLang)
- TrgLang = LCase(TrgLang)
-
- IF SrcLang = "zh-cn" Then SrcLang = "zh-CN"
- IF SrcLang = "zh-tw" Then SrcLang = "zh-TW"
-
- IF TrgLang = "zh-cn" Then TrgLang = "zh-CN"
- IF TrgLang = "zh-tw" Then TrgLang = "zh-TW"
-
- WebsiteURL = "https://translate.google.com/m?sl=" + SrcLang + "&tl=" + TrgLang + "&hl=en&q=" + TextToTranslate
-
-
- Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
-
- XMLHTTP.Open "GET", WebsiteURL, False
- XMLHTTP.Send
-
-
- Set oHTML = CreateObject("HTMLFile")
- With oHTML
- .Open
- .Write XMLHTTP.responseText
- .Close
- End With
-
-
- Set HTMLDoc = oHTML
-
- Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0)
- If Not ObjClass Is Nothing Then
- GoogleTranslate_YouLibreCalc = ObjClass.innerText
- End If
-
-
- Set ObjClass = Nothing
- Set oHTML = Nothing
- Set XMLHTTP = Nothing
- End Function
Option VBASupport 1
Function GoogleTranslate_YouLibreCalc(TextToTranslate As String, SrcLang As String, TrgLang As String)
' moonexcel.com.ua
Dim FCalc As Object
Dim WebsiteURL As String
Dim XMLHTTP As Object
Dim oHTML As Object
Dim HTMLDoc As HTMLDocument
Dim ObjClass As Object
FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
TextToTranslate = FCalc.callFunction("ENCODEURL", Array(TextToTranslate))
SrcLang = LCase(SrcLang)
TrgLang = LCase(TrgLang)
IF SrcLang = "zh-cn" Then SrcLang = "zh-CN"
IF SrcLang = "zh-tw" Then SrcLang = "zh-TW"
IF TrgLang = "zh-cn" Then TrgLang = "zh-CN"
IF TrgLang = "zh-tw" Then TrgLang = "zh-TW"
WebsiteURL = "https://translate.google.com/m?sl=" + SrcLang + "&tl=" + TrgLang + "&hl=en&q=" + TextToTranslate
' API çağrısını web sunucusuna AJAX isteğini kullanarak yürütüyoruz
Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
XMLHTTP.Open "GET", WebsiteURL, False
XMLHTTP.Send
' AJAX isteğinin yanıt metnini kullanarak bir HTML belgesi oluşturuyoruz
Set oHTML = CreateObject("HTMLFile")
With oHTML
.Open
.Write XMLHTTP.responseText
.Close
End With
' Web öğeleri kütüphanesini kullanarak HTML metnini bir nesne modeline dönüştürüyoruz Microsoft HTML Object Kütüphane
Set HTMLDoc = oHTML
Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0)
If Not ObjClass Is Nothing Then
GoogleTranslate_YouLibreCalc = ObjClass.innerText
End If
' Hafızayı serbest bırakıyoruz
Set ObjClass = Nothing
Set oHTML = Nothing
Set XMLHTTP = Nothing
End Function
Sonraki, kapat Macro Editor ve çalışma sayfasına geri dönün LibreOffice Calc , herhangi bir hücreyi seçin ve yeni özelliğimizi kullanın GoogleTranslate_YouLibreCalc() .
Uzantıyı kullanma
Ücretsiz uzantıyı yükleyerek GOOGLETRANSLATE() işlevini de kullanabilirsiniz. YouLibreCalc.oxt veya tam özellikli sürümü YLC_Utilities.oxt .
Bundan sonra bu fonksiyon LibreOffice Calc'de açılacak tüm dosyalarda mevcut olacaktır.